package com.maple.phoneward.activity;

import android.app.Activity;
import android.view.View;
import android.widget.TextView;

import com.maple.phoneward.utils.AppUtil;

/**
 * BaseActivity.java
 * 
 * @author YaJian Qiu
 * @time 2013-3-30 下午8:33:00<br>
 *       本类描述：公共Activity,封装公共的操作
 * 
 */
public class BaseActivity extends Activity {

        /**
         * 显示标题TextView
         */
        protected TextView titleView;

        @Override
        public void setContentView(int layoutResID) {
                super.setContentView(layoutResID);
                titleView = (TextView) findViewById(R.id.title);
        }

        /**
         * 监听返回按钮,父类调用了this.finish()方法
         * 
         * @param view
         */
        public void goBack(View view) {
                this.finish();
        }

        /**
         * 保存配置信息到SharedPreferences中
         * 
         * @param key
         * @param value
         */

        public void saveConfig(String key, Object value) {
                AppUtil.saveToSharedPreferences(this, key, value);
        }

        /**
         * 从SharedPreferences中获取配置信息
         * 
         * @param key
         * @param clazz
         * @param defaultValue
         * @return
         */
        public <T> T getConfig(String key, Class<T> clazz, Object defaultValue) {
                if (defaultValue != null)
                        return AppUtil.getFromSharedPreferences(this, key, defaultValue, clazz);
                else
                        return AppUtil.getFromSharedPreferences(this, key, clazz);
        }

        /**
         * 从SharedPreferences中获取配置信息
         * 
         * @param key
         * @param clazz
         * @param defaultValue
         * @return
         */
        public <T> T getConfig(String key, Class<T> clazz) {
                return getConfig(key, clazz, null);
        }

        /**
         * 从SharedPreferences中获取配置信息
         * 
         * @param key
         * @param clazz
         * @param defaultValue
         * @return
         */
        public String getConfig(String key) {
                return getConfig(key, String.class, null);
        }

}